home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
001
/
max.arc
/
MAX-REF.DOC
< prev
next >
Wrap
Text File
|
1986-04-05
|
50KB
|
1,198 lines
MAX
REFERENCE MANUAL
PRELIMINARY VERSION
Ivo Welch
NEW YORK, SCHWEINFURT
8 April 1985
Copyright (C) 1985 I. Welch
1. An Example
Here is an example how to use MAX. It is only at this point in the
documentation, so that you can satisfy your initial curiousity and
play-drive. If you are not yet burning to try out everything, but you
would rather learn something while playing, run the Tutorial ( see
section TUTORIAL. ) instead. Do not be disturbed if you don't
understand everything that is going on. Just follow the instructions
and look at the action on the screen.
You type everything that is in bold-face. Explanations are provided
in Italics. CTL-F means: hold down the CTRL key and press
simultaneously the F key; ESC-F means: first press the ESC key, then
press the F key.
You start this example by typing MAX \MAX\DOC\MAX.HLP at the DOS
prompt.
A>MAX \MAX\DOC\MAX.HLP
You have just asked MAX to edit its own HELP file ( which can be in
the connected or in the \max\doc directory ). You will not only see
normal characters, but a few control-characters interspersed in your
file, recognizable by a light ^ followed by another character.
CTL-F CTL-F CTL-F
Now the cursor has moved three characters to the right
CTL-B CTL-B
And it has moved back two characters
CTL-P
You have just made a mistake, trying to retreat a line when the
cursor was already on the first line. MAX has detected your error,
and notifies you with a beep and a message that you can see for a few
seconds below the modeline.
CTL-N
Now you have advanced one line
CTL-P
Now you can retreat a line, sine you are not on line 1 anymore
CTL-D
You have just deleted a character
CTL-X CTL-B
You have asked MAX to allow you to choose a new buffer ( you want
to stop changing this document, and start changing another document
without loosing your changes on the first document ). MAX displays
you a small menu of available choices
<RETURN>
You prefer to continue editing your original document. A number
would have chosen a new work place for editing another file.
<CTL-X 2>
You have entered "2 window mode." This allows you to edit your file,
while looking at another, and switching easily back and forth between
editing files
<CTL-X 1>
But you are not too interested at this for now. You would rather get
some help. Hold all of the following three keys: <SHIFT <CTRL> and
Underline "_">
CTL-_
You are now looking at the help menu. If you want, hit "1" to get
menu item 1. Then you want to get out of the HELP menu, so you type
the universal abort character...
CTL-G
You are tired and decide to stop this for the time being, so you
decide to exit
CTL-X CTL-Z CTL-Y
Now you have seen how to interact with this strange computer
program. Your curiosity will now have to be satisfied now by learning
systematically useful commands.
1. How to get started
1.1. Backing up the Diskette
You can back up MAX just like you would back up any other diskette:
Run the program named DISKCOPY from your DOS diskette, then insert
MAX into one drive and a blank diskette into the other, and tell
DISKCOPY that you wish to copy from MAX's drive to the blank
diskette's drive. Make sure to always keep a backup copy of MAX in a
safe place for your own rotection against program errors, your errors,
or simply magnetic media wearout.
1.2. The Use of this Manual
This manual serves not only two programs, but also two purposes.
Purpose One is to tell you how to go about learning how to use all
these new things: the editor, the manual, the documentation etc.
Purpose Two is to serve you as a reference manual, to allow you to
explore new commands and to look up forgotten commands.
Hence, you will find a logical gap in this manual. You should
overcome it by playing and experimenting with MAX on-line. A built-in
help facility should help you to overcome problems on-line.
As a final note, if you have acess to EMACS (MIT), or any EMACS
clone (like Epsilon [trademark of Lugaro Software] or MINCE [trademark
of Mark of the Unicorn]), you may also find many valuable hints how to
use EMACS-style editors in general.
2. Learning how to use the Editor
2.1. The Keyboard
MAX's allows you to use two different kinds of inputs:
Menu/Functionkey Input, and Direct Sequences Input.
2.1.1. Menus and Functionkeys
Menu-style has the advantage of being trivial to learn and trivial
to use, but it depends heavily on the computer that you are using -
and on MAX itself. Other EMACS-like editors will not have this menu
system. Furthermore, menus force you to go through several menu's even
if you already know what you want to do. Therefore it usually takes
more time to edit with menus than with control-functions.
MAX uses IBM's non-alphanumeric keys to allow you to input commands.
Some of the keys, like Home or Arrows always do what you would expect
them to do, namely moving the cursor to another location. Try these
keys ( they are on the numeric keypad ).
The functionkeys on the left side of the main keyboard can change
meaning. The last line on the screen displays the actual function of
the functionkeys at any moment, and a brief description of which menu
is currently active. You can switch from one menu to another by
hitting the appropriate functionkey. A new menu will appear prompting
you for different options. F10 in the original menu will turn off the
last line (but still allow you to see the name of the menu). Using
menus is so trivial, that talking about it will only add complications
- try them out.
2.1.2. Keystroke Sequence Input
Control-style has the advantage that once you know one EMACS clone,
you can use all others. You will also be able to work faster, since
you command the editor directly, and don't have to go through many
menus over and over again. I strongly recommend learning and using
this method.
Every function that your editor can perform for you corrosponds to a
specific keystroke sequence. You will have to memorize them, which
may give you some initial problems. Some of the commands have
"mnemonic" keystroke sequences: they shall remind you of what they
actually do. For instance, CTL-F moves the cursor Forward, CTL-B
moves it Backwards. Unfortunately, since EMACS has grown slowly over
time, many keystroke sequences are just convention, and bear no
relationship to their actual meaning.
There are essentially two types of keystroke sequences: Control and
Escape Sequences. The main difference is that control sequences
require you to hold down the control key and at the same time pressing
another key ( denotated as CTL-*, where * is the name of the other key
), while Escape Sequences require you to first press <ESCAPE> and
after that another key ( denotated as ESC-* ).
You can look up the keystroke sequence of any function, or the
function of any keystroke sequence either on-line in your editor's
help menu, or in this manual.
2.2. HELP and QUIT
There are two functions that you should always remember:
CTL-_, that is holding down simultaneously <SHIFT>, <CTRL> and
<UNDERLINE> ( _ ), will enter the HELP menu. Here you can choose what
you need to know.
CTL-G will quit whatever you are doing and whereever you are. It
will return you to the basic editing mode ( from which you can of
course get help, exit etc ).
Always remember these special functions !
2.3. The Tutorial
The time has come to start the tutorial. Type A>MAX TUTORIAL.HLP,
carefully read every page, and follow the instructions.
If you get confused, or you think you have done something wrong,
type CTL-X CTL-Z CTL-Y and start all over again.
Once you have finished with the tutorial, you should be able to use
MAX without any problems for your most basic needs. Work with the
commands you know at this point for about a week (until you remember
the basic keystroke sequences without looking at any reference
anymore).
Once you know all the basic functions by heart, strive through this
manual, try out new commands, and see what they do. Preferably do this
only on files that you don't really need, since playing with unknown
commands gives you a good chance of erasing or modifying work
accidentally.
3. MAX Command Reference
3.1. Modes
3.1.1. Subject Modes
3.1.1.1. TEXT Mode
This is the default mode. All Text Mode means is that TAB stops are
set every 8 characters, and that hitting TAB will simply place you at
the next such stop.
3.1.1.2. Wrap Mode
Wrap Mode can be toggled with ESC-X W. When you are in Wrap mode,
and you press <CR>, starting a new line, MAX will automatically fill
the paragraph for you. This is useful when you want to type a lot of
text without even looking at the screen, and worrying about hitting
<CR> at the right time. When you finish your paragraph, you just type
one <CR>, and MAX will put in all the necessary line-breaks in the
previous paragraph.
3.1.1.3. Planned or Possible Modes
There are presently no other modes available. FORTRAN, BASIC, PASCAL
and SCRIPT mode are in planning stage, other modes may follow as well.
Hitting <TAB> in any of these modes will indent automatically, i.e.
MAX will move your cursor where your language dictates it should be.
3.1.2. Function Modes
3.1.2.1. Auto Save Mode
Auto Save Mode will save your work after every 400 typed characters.
It is not yet implemented.
3.1.2.2. Insert v Overstrike Mode
Insert Mode is the default mode. New characters will be inserted at
the cursor position; everything behind the cursor position will be
shifted to the right. Similarly, hitting a <CR> will insert a new
line, and shift all other lines down. Insert Mode allows quicker
editing than Overstrike mode, but requires a (short) time to get used
to.
Overstrike Mode works like an ordinary typewriter. New characters
will replace ( overstrike ) the old characters. The advantage is that
typists who are only used to typewriters, will already know how to use
it. Overstrike Mode is not yet implemented.
3.1.2.3. Keep Mode
Keep Mode will force MAX to remember what you were editing when you
exit. When you reenter MAX, MAX will look up what it was editing
before, re-visit these files, and position the cursor where it was
before. This can be quite useful if you are working on a big project,
changing one little part, recompiling, changing again, and so on. Keep
Mode is not yet implemented.
3.2. Explanation of Commands by Subject
3.2.1. Using the Built-In Menu
Please refer to the section on keyboard usage.
3.2.2. Getting HELP
CTL-_ will enter the built-in on-line HELP menu. A number
(not a function key!) will select another node,
delete will retreat to the last node, <ESCAPE>,
<SPACE> or <CTL-G> will abort the HELP menu, and
return to your work. If CTL-_ doesn't work, try CTL-G
CTL-_. If this doesn't work, start praying.
3.2.3. Aborting with QUIT
CTL-G will abort any function and return you to the main
editing mode. You can then ask for help, exit the
editor, etc.
3.2.4. Moving the cursor
MAX offers cursor movements by character, line, word, sentence,
paragraph, page, screen and file.
Character CTL-F
will advance the cursor to the next character
(Forward). If you are at the end of a line, the
cursor will move to the start of the next line. If you
are at the end of the file, CTL-F will cause an error.
CTL-B
will retreat by one character (Backward). If you are
at the start of a line,the cursor will move to the
last character of the previous line. If you are at the
start of the file, CTL-B will cause an error.
Line CTL-N
will move the cursor to the next line (Down). MAX
will to move the cursor to the same column. If the
next line is shorter than the old line, MAX will place
the cursor at the end of this line. If you type
directly afterwards another CTL-N ( or CTL-P ), MAX
will try to move to the original column (where your
first CTL-N or CTL-P started). If you don't
understand this, move the cursor to the end of the
second-longest line in your text, and type a few
CTL-N.
Typing CTL-N on the last line generates an error.
CTL-P
will move the cursor to the previous line (Up). Like
CTL-N, MAX will go to the same column on the next
line, or any line thereafter. Typing CTL-P on the
first line will generate an error.
Word ESC-B
will move the cursor to the start of the previous
word. A word starts after a <SPACE>, or on a new line,
with a non-<SPACE> character. ESC-B on the first word
of the file generates an error.
ESC-F
will move the cursor to the start of the next word1.
ESC-F on the last word of a file is illegal.
Paragraph ESC-]
will move the cursor to the start of the next
paragraph. A paragraph is text that begins after an
empty line. ESC-[ in the first paragraph will
generate an error. NOT IMPLEMENTED: USE CTL-R CTL-Q
CTL-M CTL-Q.
ESC-[
will move the cursor to the start of the previous
paragraph. ESC-[ at the last paragraph will generate
an error. NOT IMPLEMENTED: USE CTL-S CTL-Q CTL-M
CTL-Q CTL-J.
Page CTL-X ]
will move the cursor to the previous ^L in the text.
NOT IMPLEMENTED: USE CTL-R CTL-Q CTL-L.
CTL-X [
will move the cursor to the next ^L in the text. NOT
IMPLEMENTED: USE CTL-S CTL-Q CTL-L.
Screen CTL-V
will move the cursor to the start of the next screen,
and update to a new screen. If you are less than a
screenful away from the end of the file, ESC-V will
generate an error.
ESC-V
will move the cursor to the start of the previous
screen, and update to a new screen. If you are less
than a screenful away from the start of the file, a
warning message will be displayed.
File ESC->
will move the cursor to the end of your file.
ESC-<
will move the cursor to the start of your file.
CTL-L
will redraw the screen with a centered cursor. An
argument to CTL-L allows to specify on which screen
line the cursor should appear on. CTL-L does not
really move the cursor, but it allows you to see it
from a "different angle."
Others CTL-X CTL-X
will exchange cursor and mark. The cursor will be
moved to the position where your mark was, the mark
will be moved to the old cursor position. This comes
in very handy to check the boundaries of your region.
3.2.5. Deleting, Killing, Moving Text
There are two different ways of erasing text. Deleting will simply
throw away text. Killing will save the erased text in the Yank-Back
Buffer , and allow you to put it back into your file at any location.
In MAX, killing allows you to delete, move or copy lines, words, or
even blocks of text. The idea is always the same: you kill some of
your text, and yank it back elsewhere. To erase text, simply do not
use CTL-Y; to move text, go to the place where you want to move your
text to, and use CTL-Y; to copy text to new location(s), do CTL-Y
directly after your CTL-K to place the killed text back to its
original place. Now you have a copy of the text to copy in your
yankback buffer. Move your cursor to the new location(s), and type
CTL-Y again. Voi-la.
Since there is only one yank-back buffer, be careful with new
killing. Doing another kill will probably erase your previous
yank-back buffer, loosing whatever you killed before. There will be no
way to regain the old killed text. In some future version, there
might be more than one buffer, but for the time being you will have to
live with one.
CTL-D will delete the character at the cursor position. It
can also be used to delete empty lines, or to merge
two consecutive lines. CTL-D is illegal at the end of
the file.
CTL-H (Backspace) will rubout the last character, i.e. the
character directly before the cursor position. This
is useful for correcting text "on the run," like
typos. CTL-H is essentially the same as CTL-B CTL-D.
<BACKSPACE>, as CTL-H is often called, on the start of
the file is illegal. Note that CTL-H assumes the
function of EMACS' <DEL>.
All of the following functions will kill text, i.e. place the erased
text into the yankback buffer.
ESC-D will kill the word to the right. ESC-D at the end of
the file is illegal.
ESC-BS will kill the word to the left. ESC-BS at the start
of the file is illegal.
CTL-W will kill the region. The region is defined
dynamically as all text between the cursor and the
mark. (Marks can be set with CTL-@.) Region
commands are used to delete, move or copy entire
blocks of text. It is recommended that you use CTL-X
CTL-X to check the static boundaries of your region
before actually using CTL-W. This is because both
mark and cursor change continuously during your
editing session while you insert or delete text.
CTL-K will kill everything from the cursor to the end of the
line. If you are on an empty line, the line will be
closed. CTL-K is the most widely used command to
quickly kill or move text. CTL-K is exceptional in
so far, as directly consecutive (and only directly
consecutive) CTL-Ks do not replace the text in the
yank-back buffer, but add to it.
ESC-K allows adding text via CTL-K to the yank buffer after
you have issued some commands other than CTL-K ( which
usually means your yank-back buffer is closed ).
CTL-Y will yank back the last killed object at the cursor
position. You can yank-back the same object a few
times, creating multiple copies of text at multiple
places.
3.2.6. Searching and/or Replacing Text
MAX's search is incremental, i.e. text is already searched while
you are entering your search string or commands. Among the commands
are the options to search for control-characters, to reverse the
search direction, or to include a wildcard character. The search is
always not case-sensitive !
CTL-S will search for a string while you enter it.
CTL-R will search backward ( reverse ).
Subcommands CTL-Q
will quote a character. This allows searching for
control characters in your text ( e.g. CTL-Q CTL-L
will look for a ^L in your document ).
CTL-G
will abort the search (NOT IMPLEMENTED: and place
your cursor where you started your search ).
CTL-S
If you are searching in reverse direction, a CTL-S
will change the search direction. If you just started
a search with CTL-S, another CTL-S will search for
nother occurance of the same string.
CTL-R
Analogous to CTL-S, but reverse.
CTL-J
will match any character ( wildcard ). For
instance, CTL-S A CTL-J B will find AAB, ABB, ACB,
etc.
Other commands will abort the search, and interprete
the command as a normal MAX command. A good way to
end a search is CTL-L, which will abort the search and
simply redraw the screen.
ESC-X S
"Search and Replace" will search for all occurences
of string 1 after the cursor position, and replace it
with string 2. Note that string 1 is not
case-sensitive, so all occurances of string 1, no
matter whether in lower or uppercase, will be
replaced. ESC-X S will first prompt you for string 1,
which may contain CTL-Js ( the wildcard character ).
Then it will prompt you for string 2. This command
may take some time, so please be patient.
ESC-X Q
"Query Search and Replace," similar to "Search and
Replace," but asks for confirmation at each occurrence
of string 1. Hitting <SPACE> will substitute string
2, <DEL> will skip the substitution, and CTL-G will
abort.
3.2.7. Using Macros
Macros are a powerful way to customize your editor, and to avoid
entering common keystroke sequences repeatedly.
CTL-X ( will start the macro definition. Every character you
type hereafter will be recorded until you stop the
definition, or cause an error, or overflow the
macro-buffer ( 255 characters ). Note that DEF
appears on the modeline, reminding you that you are
defining a macro.
CTL-X ) will stop the macro definition. The DEF on the
modeline will disappear, and you can now invoke your
macro.
CTL-X E will invoke the macro. Every character that you typed
during the definition will be "played back," just as
if you typed it. When MAX detects an error, it will
automatically stop the macroinvocation. For instance,
if you are at the second to last character in the
file, and your macro does CTL-K CTL-D HELLO, MAX would
detect an error executing CTL-D, and abort the macro,
never actually inserting HELLO.
A powerful feature of MAX are arguments to macros.
For example, you could give simulate search and
replace by defining a macro that will search for a
string, then rubout the string, and insert another.
Finally you could invoke this macro with CTL-50000
CTL-X E. MAX replaces until there are no more
occurrences, or until it reaches 50,000 replacements.
Some macro invocations can take quite long. CTL-G
will interrupt macroexecutions.
3.2.8. Using Buffers and Windows
MAX allows you to edit several files, or multiple copies of the same
file during one session without exiting or saving to disk.
Each buffer holds one file (maximum 64K), just like a pad may have
several @Faecher. Only one buffer can be active at a time, i.e. you
can only edit the currently active buffer ( just like you can only
open one page in your pad ). A good example for using buffers would be
writing a letter in one document, and the envelope in another.
There is basically only one operation with buffers, namely switching
to it. The new buffer will be selected (becomes active), the
previously active buffer becomes passive.
CTL-X B will display a menu of available buffers, and prompt
you for the new buffer. MAX expects a number within
the range of available buffers, and will activate this
buffer. CTL-G aborts the selection.
CTL-X CTL-B will switch to the buffer that was active immediately
before the currently active buffer. It is a
convenient way to quickly toggle between two buffers.
Each buffer can hold a file with up to 64KB of text. When you
start MAX, MAX will load buffers with their default files, and
activate buffer 1. Presently, WORK.TXT is default in buffer 1 and 2;
other buffers do not load default files.
A window is the place on the screen that your buffer is displayed
on. Sometimes it is convenient to see one buffer, while really
working on another. This is called split editing. Think of a window as
reminders in a pad that allow you to really see two @Faecher (buffers)
at the same time. You can have two windows, each of which can hold its
own index[Buffers], or the same buffer. You can arrange them as
follows:
/-------------\ /-------------\ /-------------\
| | | | | Window 1 |
| Window 1 | | Window 2 | |---------------|
| | | | | Window 2 |
\-------------/ \-------------/ \-------------/
Apparently you could also toggle buffers to achieve the same result
as the two first figures. The real interesting gain from buffers is
sketched in figure three: Your cursor is in one of those windows, and
editing just as normal, but uses only half the screen. The other
window remains statically unchanged, allowing you to look at it.
You want to be able to switch the cursor from one window to the
other, to split up the screen into two windows, and to go back to
one-window mode.
CTL-X 1 will toggle the number of windows concurrently on the
screen ( one or two ).
CTL-X 2 identical with CTL-X 1.
CTL-X O will toggle active and passive window. The cursor will
move into the new active window. If this window is
not on the screen, the previous window will disappear
and the new window will overlay the old window.
3.2.9. Saving, Loading and Exiting
CTL-X CTL-S saves the contents of the active index[Buffers] under
its old name to disk, and marks the buffer
"unmodified." An unmodified buffer does not display a
"*" ("dirty") as the first character on the modeline.
CTL-X CTL-W allows the contents of the active index[Buffers] to be
written to a new file on disk, thus preserving the
contents of the old file. The new name becomes the
default for all further CTL-X CTL-S. CTL-X CTL-W will
prompt you for the new filename ( Escape recognition
will work! ).
CTL-X CTL-V will visit a file from disk in the current buffer. It
will prompt you for the name of a file. If no such
file exists, only the name is noted ( for further
CTL-X CTL-S ). In this case, a "[NEW FILE]" message
will appear on the screen. If the file exists, you
can attempt to use <ESC> to complete unique filenames,
but only if these files are in the currently connected
directory. If there is more than one file available
to match the input up to this point, a beep will
sound. If there is no such file at all, CTL-X CTL-V
will abort. If only one such file exists, the rest of
the name will be filled in at the promptline. You can
now press <RETURN> to load this file. CTL-X CTL-V
will return an error if the file is longer than 63K (
which virtually no normally used file will exceed.
Longer applications are usually realized with separate
compilations or similar facilities. The 64K limit is
enforced to use the 8088s' power to the largest
possible extent ).
CTL-X CTL-Z will exit to DOS after additional confirmation ( CTL-Y
).
3.2.10. Using other built-in functions
Following is a listing of commands which have not yet been
discussed, some of which can not be found in the standard DEC-20 EMACS
implementation.
CTL-X D will prompt for a directory mask, and display the DOS
directory of files on the disk.
CTL-Z will scroll the screen up by one line.
ESC-Z will scroll down the screen by one line. This and the
above function can be conveniently accessed by
CTL-PgUP and CTL-PgDn.
ESC-Q will fill the paragraph, which means it will break all
lines in the current paragraph which are longer than
the fillcolumn, s.t. they are as long as permitted.
Lines that are short enough to hold more words are
merged with the next line. Words will never be broken
up.
CTL-X F allows setting the fill column using an argument.
ESC-70 CTL-X F will set the maximum length of a line
on a fill to 70.
ESC-U will uppercase the previous word ( i.e. convert all
its characters to uppercase ).
ESC-C will capitalize the previous work ( i.e. convert the
first letter to uppercase, and all others to lowercase
).
Arguments Most functions accept arguments. An argument usually
means that a command is repeated n times. To give an
argument, use <ESC>-n or CTL-U n ( the two are
equivalent ) where n is a number, and then simply
issue the command. For example, CTL-U 10 CTL-N will
move down 10 lines.
Some functions interpret arguments differently. Two
commands come to mind: CTL-L, CTL-Q and CTL-X F. An
argument to CTL-L will center the cursor on line n on
the screen; an argument to CTL-Q will allow you to
insert n controlcharacters without typing CTL-q in
front of each; an argument to CTL-X F will set the
fillcolumn.
CTL-X CTL-_ will create a cross-reference of a valid help-file
which is in the active buffer , and dump it into the
previous buffer. Please note that MAX will crash if
you attempt to run this function without a valid
help-file ! In particular, make sure that nodenames
are properly terminated.
3.2.11. Explanation of Commands by Keystroke
Please refer to the index.
3.3. Some Differrences of MAX and EMACS
Default Files: On startup, MAX will attempt to load the first two
files which are specified at the DOS command line into
buffers #1 and #2. If no file was specified, MAX will
load the file WORK.TXT into the first two buffers .
Buffers #3 to #7 will always be initialized to ( but
not loaded with ) the filename FOO.BAR.
Messages: After loading, MAX will display the number of buffers,
the space free for holding killed text,(The number of
buffers and the free space for killed text is
determined by all free memory above the program) and a
message indicating whether it could load a file. Note
that for two new files in buffers 1 and 2 you should
get two [NEW FILE] messages. Loading one file into
one buffer , but none into the other will still give
you one initial [NEW FILE] message.
Mark: On startup, MAX will set the mark on the first
character of the file.
Exit: Since forks are not kept ( or in UNIX terms: "pids
are not stopped" ), MAX asks for confirmation (CTL-Y)
before exiting to DOS.
Escape Recognition:
Hitting <ESC> when MAX prompts you for a filename will
force MAX to attempt completing it. Note that this can
only be done if the filename is unique, and never for
a directory-name !
Find File: Find File is unfortunately not yet implemented.
Buffer Space: Buffer Space is restricted to 64K.
Buffer Switching:
CTL-X B will prompt a menu of available buffers, and
allow you to choose one by typing a number. CTL-X
CTL-B will switch previous and current buffer in the
current window.
Windows: Only two windows are permitted. C-X 1 or CTL-X 2
toggles windows.
Lastline: MAX offers both EMACS-like commands and menu-entry.
The menu system will appear on the bottom of the
screen. Pressing the key will result in the
corresponding action being taken. By my convention,
choices leading to other menus are uppercased, while
editor commands are lowercased. Modeline:
The modeline constantly updates date and time.
Messages Messages generally stay on the screen for about 15
seconds ( unless new messages appear ). Error messages
are usually in reverse video.
Help: The help menu is actually a finite state language
interpreter. The file MAX.HLP ( which must be either
in the connected directory or in \MAX\DOC ) is
interpreted as a menu, and action can be taken by the
user to slide down the graph. Nodes are
diskaddresses, and therefore one has to carefully
adjust new diskaddresses after modifying the help menu
( use MAX to do so ! ). There is a built-in function
( CTL-X CTL-_ ) which will calculate the new
diskaddresses of all nodes, and report it to the other
buffer ( but may crash the editor upon syntactically
invalid help files ). This function makes modifying
the help menu considerably easier. MAX searches for
its help file first in the connected directory and
then in \MAX\DOC. MAX does not expect functionkeys,
but numbers as choices! DEL will retreat to the
previous node, ESC, SPACE or CTL-G will abort.
Please refer to the section on Help in this manual.
Macros: The execution of a macro will not turn off display
updating. One can see the macro working. The
advantage is that one can simply stop a macro with a
long argument at any chosen time using CTL-G. The
disadvantage is a 2% loss of speed.
Search & Replace:
Search and Replace is invoked by ESC-X S, Query Search
and Replace by ESC-X Q. Please refer to the proper
section of this manual.
Fill: Fill will not take an argument to justify.
Scrolling: CTL-Z and ESC-Z will scroll the display one line up or
down.
Bugs: Some minor bugs have appeared, none of them fatal.
Most disappear from the screen immediately after
simple and obvious corrective action is taken.
MAX, Copyright (C) Ivo Welch, Jan. 1985.
4. Advanced Topics
4.1. How to modify the Editor Help Menu
4.2. About the Internal Structure of the Editor
4.2.1. Easy Customization
Please look at DEFS.H to modify certain standard definitions (i.e.
last-line displayed on power up, display used, original macro,
original file names to be loaded etc.).
4.2.2. Major Datastructures
BCB stands for Buffer Control Block, and is located in the first 256
bytes of each Buffer. Its definition can be found in DEFS.H. Among the
more important fields of the BCB is the cursor position, the position
of the cursor on the screen, the mark, the FCB that allows saving or
loading the buffer to disk, etc. As an example, to set the cursor to
the start of the buffer, use the command:
mov DS:BCB.FCursor, 100h
where DS is the 64K segment that holds our buffer, BCB the structure
definition, and FCursor the address of the cursor in the field.
4.2.3. The Function Jump Tables
4.2.4. The Screen Definition
Please fgrep for SCR if you wish to find out points where I have to
write to the screen.
4.2.5. The OS interface
4.2.6. Ading a New Function
4.2.6.1. Error Trapping
If an error should be displayed, DX should be set to the offset of
an ascii string, CX should contain its length. Control should be
transferred to .Error0, which will reset stack, macro and other
pointers to their original state at invocation, display the
errormessage, and sound a beep.
Index
"*" (to mark modified buffers) 18
64K Limit 12, 13, 15
[NEW FILE] 13, 15
Aborting 3, 6, 8, 11, 12, 13, 14, 16
Arguments 14
Arguments to CTL-L 9, 14
Arguments to CTL-X F 14
Arguments to Macros 12
BACKSPACE 10
Blocks 10
Buffer Space Limit 12, 13, 15
Buffers 2, 12, 14, 15
Buffers, Number Of Available Buffers 15
Buffers, Toggling Buffers, see also CTL-X CTL-B 15
Bugs 16
Capitalizing a Word 14
Case Sensitivity 11
Confirmations 11, 14, 15
Crashes, because of CTL-X CTL-_ 14, 18
Cross Reference of a Help File 14, 18
CTL-* 5
CTL-@ 10
CTL-B 5
CTL-F 5
CTL-_ 3, 6, 8
CTL-B 2, 8, 10
CTL-D 2, 10, 12
CTL-F 2, 8
CTL-G 3, 6, 8, 11, 12
CTL-H 10
CTL-J 11
CTL-K 10, 12
CTL-L 9, 11, 14
CTL-N 2, 8, 12
CTL-P 2, 8
CTL-PgDn 14
CTL-PgUp 14
CTL-Q 11
CTL-R 11
CTL-R CTL-Q CTL-L 9
CTL-R CTL-Q CTL-M CTL-Q CTL-J 9
CTL-S 11
CTL-S CTL-Q CTL-L 9
CTL-S CTL-Q CTL-M CTL-Q CTL-J 9
CTL-U 14
CTL-V 9
CTL-W 10
CTL-X ( 11
CTL-X ) 12
CTL-X 1 3, 13, 15
CTL-X 2 2, 13, 15
CTL-X [ 9
CTL-X ] 9
CTL-X B 12, 15
CTL-X CTL-_ 14, 18
CTL-X CTL-B 2, 12, 15
CTL-X CTL-D 14
CTL-X CTL-F 15
CTL-X CTL-S 18
CTL-X CTL-V 13
CTL-X CTL-W 13
CTL-X CTL-X 9, 10
CTL-X CTL-Z 3, 6, 14
CTL-X D 14
CTL-X E 12
CTL-X F 14, 16
CTL-X O 13
CTL-Y 3, 6, 10
CTL-Y as Confirmation 14, 15
CTL-Z 14, 16
Cursor Down 8
Cursor End 9
Cursor Home 9
Cursor Left 8
Cursor Right 8
Cursor Up 8
Date, displayed on the Modeline 15
DEF, displayed on the Modeline 12
Default Directories 18
Default Files 15
Defaults 7, 12, 13, 15, 18
DEL, to "backspace" 10
DEL, to abort HELP 18
DEL, to overskip in Query Replace 11
Directory 14
Dirty, see "Modified" 13
Disk, writing to and reading from disk 18
Diskaddresses, as used in HELP 18
DOS 2, 14, 15, 18
EMACS 4, 5, 10, 14, 15
EMACS Clones 4, 5
Error Messages 2, 12, 15, 17
ESC, as used in filename completion 15
ESC, as used in HELP 8, 18
ESC-* 5
ESC-< 9
ESC-> 9
ESC-[ 9
ESC-] 9
ESC-B 8, 9
ESC-BS 10
ESC-C 14
ESC-D 10
ESC-DEL 10
ESC-F 2, 9
ESC-K 10
ESC-n<umber> 14
ESC-Q 14, 16
ESC-U 14
ESC-V 9
ESC-X Q 11
ESC-X Query Search And Replace$ 11
ESC-X S 11
ESC-X Search and Replace$ 16
ESC-X W 7
ESC-Z 14, 16
Escape Recognition 13, 15
Filenames 13, 15
Fill Column 14
Fill Mode 7
Fill Paragraph 14, 16
Find File 15
Finite State HELP Language 18
HELP 3, 4, 5, 6, 8, 16, 18
HELP file 14
Indexing a Help File 14
Kill Space 15
Killing 10
Last Line on Screen 5, 8, 15
Linebreaking 14
Literal Mode 14
Macro Buffer 12
Macros 12, 16
Mark(ing the Region) 10, 15
MAX.HLP 18
MAX\DOC 18
Memory Usage 15
Menus 5, 8, 12, 15, 18
Messages 2, 9, 12, 13, 15, 17
Modeline 15
Modified Buffer 18
Numbers, as used to select HELP options 18
Options, as used in Help 18
Paragraph 7, 9, 14
Query Search and Replace 11
QUIT 3, 6, 8, 11, 12, 13, 14, 16
RAM Usage 15
Region 10, 15
Saving a Buffer to Disk 18
Scrolling 14, 16
Search and Replace 11, 16
Segment Limits, see also 64K Limit 13
SPACE, as used in HELP 8, 16, 18
SPACE, as used in Query Replace 11
Time, displayed on the Modeline 15
Uniqueness of Filenames (for Escape Recognition) 15
Unmodified Buffer 18
Uppercase, as used in Menus 15
Uppercasing a Word 14
Visiting a File 13
Wildcard Character 11
Windows, Toggling Windows, see also CTL-X 1 or CTL-X 2 15
WORK.TXT 12, 15
Writing a Buffer to Disk 13
Yank Buffer 9, 10
Table of Contents
1. An Example 2
1. How to get started 4
1.1. Backing up the Diskette 4
1.2. The Use of this Manual 4
2. Learning how to use the Editor 5
2.1. The Keyboard 5
2.1.1. Menus and Functionkeys 5
2.1.2. Keystroke Sequence Input 5
2.2. HELP and QUIT 6
2.3. The Tutorial 6
3. MAX Command Reference 7
3.1. Modes 7
3.1.1. Subject Modes 7
3.1.1.1. TEXT Mode 7
3.1.1.2. Wrap Mode 7
3.1.1.3. Planned or Possible Modes 7
3.1.2. Function Modes 7
3.1.2.1. Auto Save Mode 7
3.1.2.2. Insert v Overstrike Mode 7
3.1.2.3. Keep Mode 7
3.2. Explanation of Commands by Subject 8
3.2.1. Using the Built-In Menu 8
3.2.2. Getting HELP 8
3.2.3. Aborting with QUIT 8
3.2.4. Moving the cursor 8
3.2.5. Deleting, Killing, Moving Text 9
3.2.6. Searching and/or Replacing Text 11
3.2.7. Using Macros 11
3.2.8. Using Buffers and Windows 12
3.2.9. Saving, Loading and Exiting 13
3.2.10. Using other built-in functions 14
3.2.11. Explanation of Commands by Keystroke 14
3.3. Some Differrences of MAX and EMACS 15
4. Advanced Topics 17
4.1. How to modify the Editor Help Menu 17
4.2. About the Internal Structure of the Editor 17
4.2.1. Easy Customization 17
4.2.2. Major Datastructures 17
4.2.3. The Function Jump Tables 17
4.2.4. The Screen Definition 17
4.2.5. The OS interface 17
4.2.6. Ading a New Function 17
4.2.6.1. Error Trapping 17
Index i